/**
 * 控制窗口中的事件
 */
Ext.define('app.view.user.window.UserWindowController', {
	
	extend: 'Ext.app.ViewController',
	
	alias: 'controller.userwindow',
	
	requires: [
        'Ext.window.MessageBox',
        'Ext.window.Toast'
    ],
    
	init: function() {
		Ext.log('init windowController.');
	},
	
	onProvinceChange: function(combo, newVal, oldVal) {
		console.log(newVal + ", " + oldVal);
	},
	
	onCityChange: function(combo, newVal, oldVal) {
		console.log(newVal + ", " + oldVal);
	},
	
	saveOrUpdateUser: function() {
		var form = this.getView().down('form');
		if (!form.getForm().isDirty()) {
			Ext.Msg.confirm('提示', '表单数据未发生任何修改，窗口将直接关闭，您确定吗？', function(choice) {
				if (choice == "yes") { //如果确定，清空表单数据同时关闭窗口
					form.getForm().reset();
					this.getView().close();
				}
			}, this);
			
		} else {
			if (form.isValid()) { //如果验证都通过了
				Ext.getBody().mask("保存中...");
				
				form.getForm().submit({
					clientValidation: true,
					url: 'rest/user/saveOrUpdate',
					params: form.getForm().getValues(),
					scope: this,
					success: function(form, action) {
						Ext.getBody().unmask(); //取消遮罩
						form.reset(); //表单数据清空
						this.getView().close(); //关闭窗口
						
						//刷新列表
						this.refreshGrid(action.result.msg);
						
						Ext.toast({
					     	html: action.result.msg,
					     	title: '保存结果',
				     		width: 200,
					     	align: 't'
						});
					},
					failure: function(form, action) {
						Ext.getBody().unmask(); //取消遮罩
						form.reset(); //表单数据清空
						this.getView().close(); //关闭窗口
						Ext.Msg.alert('保存结果', action.result.msg);
					}
				});
			} else {
				Ext.toast({
			     	html: '对不起，验证未通过，请确认你填写的信息完整且符合要求',
			     	title: '提示',
		     		width: 200,
			     	align: 't'
				});
			}
		}
	},
	
	refreshGrid: function(msg) {
		this.fireEvent('refreshGrid', this, msg);
	}
});